package device

const (
	ON_LINE  = "online"  // 指令：设备端向主控端发送在线报告
	OFF_LINE = "offline" // 指令：设备端向主控端发送离线报告
)

// 设备信息
type Device struct {
	Id   string `json:"id"`             // 设备ID
	Name string `json:"name,omitempty"` // 设备名称
}

// 设备状态命令
type Status struct {
	Command string  `json:"cmd"`    // 指令：online | offline
	Device  *Device `json:"device"` // 设备信息
}

// 创建设备在线的状态命令
func NewOnline(id, name string) *Status {
	return &Status{Command: ON_LINE, Device: &Device{Id: id, Name: name}}
}

// 创建设备离线的状态命令
func NewOffline(id, name string) *Status {
	return &Status{Command: OFF_LINE, Device: &Device{Id: id, Name: name}}
}

// 是否为在线
func (s *Status) IsOnline() bool {
	return s.Command == ON_LINE
}

// 是否为离线
func (s *Status) IsOffline() bool {
	return s.Command == OFF_LINE
}
